It turned out we can't use transaction mode, cause there are prepared statement used a lot within code, while processing a single http request.
Also, I can't 100% rule out that there won't be any long running (statistical) queries launched (even though such requests should not come to this database), which would occupy connection for longer time, but do not create any race condition... So having pool size at 8 may be too slim .
It's a single database.