One of the major performance features added to PostgreSQL 8.3 is HOT. HOT allows reusing space left behind by dead rows resulting from DELETE or UPDATE operations under some common conditions. The specific case that HOT helps with is when you are making changes to a row that does not update any of its indexed columns. When this happens, if the new second copy of the row can be fit onto the same page as the existing one, it's put there without a new index entry being allocated for it. Instead, it's added to a list on that existing data block if there's space, in a structure called an update chain.
And in order to make this case more likely to occur, HOT also does a single-block mini-vacuum as part of its work whenever practical to do so. ...