Bom, vou tentar dar uma resposta aqui que compense todas as opiniões:
O que acontece hoje:
Se o commit na base Y for realizado corretamente, eu comito na base X, se o comiit na base X for executado corretamente, tudo foi perfeito, lindo, maravilha, mantive meu emprego!!!

Vamos fazer algumas suposições do mundo real:
if (baseY.commit() == true) {
baseX.commit();
} else {
baseY.rollback();
baseX.rollback();
}
Nesse caso OK, o commit na base X espera a garantia de que o commit na base Y tenha sido feito. Caso o commit na base Y nao tenha sido efetuado, eu utilizo o rollback() de ambas as bases, garantindo assim a consistência.
Agora, imagine a situação:
commit() na base Y efetuado corretamente, e o commit() na base X desceu o penhasco com uma SQLException nas costas!!!
O que fazer nesse caso?
poderia dar o rollback() em ambos os casos como feito anteriormente, porém a base Y já efetuou o commit(), e queiramos ou não isso é irremediável!!!
O que fazer agora?
Tenho um monte de registros inconsistentes na base Y, e isso prezados, não é bom pra ninguém!!!
At.