Я наконец решил использовать внутреннюю транзакцию. ATM, кажется, работает нормально, если обнаружена ошибка, текущий пакет откатывается. Что касается комментария Бена выше, я попробовал это, но это невозможно, не то, чтобы он проходил через часть кода, где вы могли бы вызвать событие. В конце я использовал свойство notifyafter, которое вызывает событие после того, как были скопированы x строк, чтобы вызвать мое событие. Возможно, не самый лучший способ сделать это, но я не мог придумать лучший способ. Надеюсь, кто-нибудь найдет это полезным.