I have a read query that I execute within a transaction so that I can specify the isolation level. Once the query is complete, what should I do?
If you set AutoCommit false, then YES.
In an experiment with JDBC(Postgresql driver), I found that if select query breaks(because of timeout), then you can not initiate new select query unless you rollback.