acho que um rollback dentro do catch ficaria seguro em relação a transação.
fun adicionarJogo(jogo: Jogo) { try { manager.transaction.begin() val entity = JogoEntity(jogo.titulo, jogo.capa, jogo.preco, jogo.descricao) manager.persist(entity) manager.transaction.commit() } catch (e: Exception) { manager.transaction.rollback() println("Erro ao adicionar o jogo: ${e.message}") throw e } }