Whenever I have any code dealing in any way with the database, I always run that in a Transaction. Even when I am just reading. There are still things that I need especially isolation level if my application is being used by more than one person. So in a query, I might still need to be fully isoloated from other user's transactions.
Also, I use Hibernate 99.99999% of the time and Hibernate always requires a Transaction to talk to the database.
So my answer for many reasons is to always use transactions when talking to a database. With any Data Access Technology and any CRUD operations.