It is incorrect that PUSH "Copies the operand into (SP), then increments SP by 2."
From the Zilog Z80 manual:
Operation
(SP – 2) ← qqL, (SP – 1) ← qqH
Description
The contents of the register pair qq are pushed to the external memory last-in, first-out
(LIFO) stack. The Stack Pointer (SP) Register pair holds the 16-bit address of the current
top of the Stack. This instruction first decrements SP and loads the high-order byte of register
pair qq to the memory address specified by the SP. The SP is decremented again and
loads the low-order byte of qq to the memory location corresponding to this new address
in the SP. The operand qq identifies register pair BC, DE, HL, or AF, assembled as follows
in the object code: