Don't close connection after OperationalError

It's not possible to recover when expected exception
(e.g. duplicated entry, ...) is raised. It's possible
to recover by calling `reconnect` every time in catch 
block but that's very annoying.

This behavior is also inconsistent with `executemany` 
methods that don't close connection on exception.