Add an adapter only when it supports transactions
Refactor adapter handling to be simpler