Current behaviour: Methods with a connection argument silently fetch a new connection if the passed connection is null
New behaviour: These methods should throw an exception if the passed connection is null
Rationale: these methods will be only needed if a method should be executed in a transaction context. If one assumes that a transaction is open (connection is not null), but it is not (connection == null), it is a bad idea to silently start one as this behaviour is very difficult to tell from the correct one. A clean failure is much easier to test for.