SSIS может обрабатывать транзакции достаточно хорошо. Там, где он падает, есть транзакции против нескольких БД или серверов, использующих MSDTC (все еще работает, но есть некоторые предостережения).
Можно установить TransactionOption для задачи «Поток данных» как «Требуется». Это заставит SSIS зарегистрировать его в транзакции. Аналогично, вы можете поместить TransactionOption других задач в состояние NotSupported (например, обновить таблицу состояния, если она не будет выполнена, если она не будет выполнена).
На самом деле вы не можете обработать каждую запись в контейнере последовательности (если только вы не перебираете задачу потока данных несколько раз, что, вероятно, не лучший способ). Вместо этого я бы поместил поток данных в требуемое состояние транзакции, а затем он должен выполнить задачу, если в вашем потоке данных возникнут ошибки, и откатить всю транзакцию.