I would think setObject should respect stringtype=unspecified. So I would be willing to accept this as a solution
OK, here's a pull request with a unit test to cover expected behaviour with different combinations of setObject and setString, for inserts and queries.
Interestingly, when I first tried this I tried using point as the type to test rather than an enum (so that I didn't have to create the enum type in the test), but it would fail when trying to select a row out in a query like "select * from thetable where p = ?" saying "operator does not exist: point = unknown". I presume that this due to multiple = operators for the point type at the db level, so the backend can't decide which type to create. I guess there's not much that we can do about that - if things are ambiguous then you need to be more specific, and of course we have a PGpoint java object anyway.