I have found an odd movement when using multiple connections with prepareStatement("").
The following ERROR message appeared.
org.postgresql.util.PSQLException: ERROR: prepared statement "S_1" does not exist
In org/postgresql/core/v3/QueryExecutorImpl.java, EMPTY_QUERY instance is defined as a static instance.
--- private final static SimpleQuery EMPTY_QUERY = new SimpleQuery(new String[] { "" }, null); ---
For that reason, After CONNECTION-A has prepared EMPTY_QUERY already, If CONNECTION-B tries to execute EMPTY_QUERY for the first time, then CONNECTION-B sends a bind message to PostgreSQL without prepare.