Нормально.
Exception::UpdateConflict не прерывает транзакцию (поэтому appl.ttsLevel() > 0) и обрабатывается "ближайшим" try..catch внутри транзакции. Поэтому при обработке этого исключения в catch делают перехват и вызов другого типа исключения Exception::UpdateConflictNotRecovered
Посмотрите пример в классе \Classes\Tutorial_RunbaseBatch\run
То же самое справедливо и для Exception::DuplicateKeyException
Try Catch в методе update на таблице