да все в статье написано
http://www.ibase.ru/devinfo/savepoints.htmно я бы советовал в дебри when не лезть, как минимум поначалу.
Ну и за факт принять, что все действия, выполненные оператором, при ошибке внутри оператора, отменяются.
update - оператор
delete - оператор
execute procedure - тоже оператор
"срабатывание триггера" - тоже в своем роде оператор, там такие же правила действуют.
Например, update вызвывает срабатывание триггера, в триггере вызывается процедура, в процедуре есть insert и delete.
И этот update обновляет 100 записей. 99 прошло успешно, а на 100ой delete в процедуре выдал ошибку. Так вот, автоматом
- отменится insert в процедуре (а delete не надо отменять, он не прошел) и все остальное в процедуре
- отменится все, что делалось в триггере
- отменится все, что было сделано исходным update (к 99 записям).