Allow COMMIT or ROLLBACK if no transaction is open

By issuing a warning instead of an error.

All other systems allow this behavior and frameworks seem to rely on it, ActiveRecord and Hibernate for sure.

Postgres changing attributes (e.g. READ ONLY) when none is active and also allows BEGIN when one already is. We still throw for those but I could be convinced warning would be more consistent.