Можно ли перехватить исключение внутри весенней транзакции и зафиксировать без отката?
Вы можете указать исключения, которые будут игнорироваться, другими словами, будет происходить фиксация.
Пример
@Transactional(noRollbackFor = SomeException.class)
Документ здесь
Или вы можете просто поймать исключение, будет иметь тот же эффект.