>Is it a bug or do we have other any alternate way to handle this ?
PostgreSQL is strongly against "partial commits to the database". If you think a bit about it, it is not that bad. You got an error, what is the business case to commit the partial transaction then?
Exceptions should not be used for a "control flow", should they?
If you want to shoot yourself in a foot for fun and profit, you can try https://github.com/pgjdbc/pgjdbc/pull/477. What it does, it creates savepoints before each statement, then it rollbacks to that savepoint in case of failure. Vladimir