Every UPDATE in PostgreSQL writes a new tuple version. With HOT, that new version stays on the same page and the indexes never learn about it. Without HOT, every index entry has to be rewritten.
Pick HOT update (changes a non-indexed column) or Cold update (changes an indexed column) and watch the difference. HOT updates chain new versions through t_ctid on the same page; cold updates force new entries into every index. Hit Prune to fire opportunistic cleanup: dead chain members become LP_UNUSED, the chain head becomes LP_REDIRECT, and the page defragments. Click any line pointer for the full state.