é o seguinte uso a arquitetura básica MVC , onde uso tb o padrao DAO, dai no meu sistema tenho a TABELA SERIE e TABELA DISCIPLINA, elas possuem uma associacao que forma outra tabela SERIEDISCIPLINA que possui a PK = as chaves das duas tabelas referenciadas, ou seja, ao cadastrar serie preciso associa-la a disciplinas, sendo assim ao cadastrar uma serie os atributos basicos como nome sao inseridos na TABELA SERIE e logo apos devem ser inseridos as FK na TABELA SERIEDISCIPLINA. Obviamente q caso dê um pau na conexao apos inserir na TABELA SERIE e antes de inserir na TABELA SERIEDISCIPLINA deve ser executado um ROLLBACK. Como faço isso ? obs: cada insert está em um DAO diferente ok .
Vc DEVE ter um filtro que faz isso pra vc, ou seja, que pega a conexão da requisição em questão e abre uma transação e que depois no final pega a transação aberta e comita ou dá rollback.
É nessas horas que o framework tem que te ajudar, caso contrário vc começa a fazer hacks que vão te assombrar mais tarde.
Dá uma olhada aqui apenas para ter uma noção de como funciona um filtro de transação que vai transformar sua requisição numa requisição atomica.