業務ロジッククラスXでDB接続とBEGIN
  ↓
  DBクラスYで振込情報をINSERT
  ↓
  DBクラスZで入金情報をINSERT
  ↓
業務ロジッククラスXでCOMMITとDB切断

をする際にDBクラスY,Zでconnection.commit()をさせない、
コンパイルエラーにする方法ってありますか?
INSERTをさせるためにはDBクラスY,Zにconnectionを渡さなければならず
connectionを渡せばcommit()が可能になってしまいます。
commit()やrollback()が不可能なDB接続を渡すとかできないでしょうか?
テストでバグ潰せばいいじゃんというのもわかりますができればコンパイル時にはじきたいです。