MVCC (multi‑version concurrency control) keeps multiple versions of rows. Updates create new row versions with transaction IDs; readers see a consistent snapshot without blocking writers. Old versions are later cleaned up by VACUUM.