Shouldn't we be able to prune rows that have been inserted and deleted by the same transaction? I'd have hoped to see this example use only one heap page ...
Not before the transaction commits ? In the test, we update a single tuple 10000 times in the same transaction. So there is no opportunity to prune.