Are JDBI batch operations (inserts or updates) atomic? Or do I need to wrap them in a transaction block?
According to java docs by default it's transactional. I don't know whether it fulfills the description of atomic but you don't need to wrap them in a transaction block. (FYI, there is @Transaction annotation you can use in case you want to do something transactional on DAO level, which is nicer than transaction blocks)