Thanks for the suggestion.
What I originally wanted was a way to alter a single table T (such that it has before and after like T1 and T2) but still be able to later go through it and know which entries were new and which were deleted. This is so I can perform some other changes related to each entry, depending on whether they were newly added or not. (These other changes could not occur as I went).
In the meantime, I had the two tables (old one, and a fresh new one) and was reconciling them (figuring out which entries were only in the before or after table). I also tried a reference counting approach, but that required looping through them as well.
However, finally I think I have an approach working with one table, and four states (never, new, untouched, and removed) which only requires one loop through at the end (to fix up all the entries to two states (absent and present) and do any actions accordingly. I still have to finish coding it tonight but I'm confident it will work.
So I think I've sidestepped the problem nicely.