Well .... timezones in JDBC are certainly a thorny issue. First off there is no JDBC allowance for any date/time object with out time zones. We have to support time and date with time zones properly. That being said JDBC spec says that if you do not provide a timezone then the timezone of the JVM will be used. So the solution to your problem is to provide a 0 timezone.
Then, watching the PostgreSQL logs, I see that the value supplied for parameter #1 is '05:00:10'.
Since my TZ is US Eastern, it appears as if JDBC is adjusting for the timezone. I don't understand why it would do so, as the whole point is that TIME WITHOUT TIME ZONE doesn't care, record, or do anything else with or about the TZ.
To me, this feels like a bug. I'm certainly open to someone explaining to me why this is the correct behavior, so I can stop understanding it wrong (should that be the case) but that would have to include an understanding of how to get the desired behavior. That behavior is that the time passed in is stored without caring about its time zone. -- Bill Moran