Row versions
Postgres never overwrites a row: an UPDATE writes a new row version and marks the old one dead. ctid is a row version's physical address as (page, item).
task
A table holds one row. UPDATE it, then return its ctid as text: an UPDATE writes a new row version at a new address.