Вы можете пометить транзакцию программно как только для отката, используя этот код
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
См. Откат декларативной транзакции в Spring Reference .
Но это не рекомендуется, потому что вы тесно связываете свой код с платформой Spring.
Возможно, если вы делаете это более чем в одном месте, вам следует ввести вспомогательный метод, что-то вроде TransactionUtils.rollbackCurrentTransaction()
.Таким образом, если вы решите изменить свой транзакционный подход (или, не дай бог, отойти от весны), вам нужно будет изменить только один метод.