Finch, хм..., что самое интересное, я это сам знал. Вот теперь сижу и вспоминаю/думаю почему мне это не пришло в голову, а если пришло, почему меня это не устроило?
Вспомнил. Не устраивает потому что я не могу откатить все изменения. Таблицы могут прийти на обработку в транзакцию с уже измененнными записями. И откатить мне их нужно будет именно до того состояния, в котором они были до транзакции. А ResetChanges откатит абсолютно всё.
Как вариант вижу копирование таблиц входящих в транзакцию с последующим копированием их обратно, в случае отката транзакции. Но не слишком ли тяжелой и медленной получится такая обработка?