before you run your selects, this will guarantee that you've done no
DML, if you do then you get this error

ORA-01456: may not perform insert/delete/update operation inside a
READ ONLY transaction

This would be a good way to make sure there is no DML going on that
you don't know about. Then there is no need to COMMIT or ROLLBACK at
all.

Also as far as I understood it COMMITs are not expensive, but
ROLLBACKs can be. It's easy to test, find a big table do

UPDATE big_table SET col1=col1;

This updates every row with the same value so that you don't actually
have different data. Test this with a rollback and commit and see the
difference. In fact as I've just got to work I'll give it a go