> But getting back to my problem - perhaps there is something I
> misunderstood: is it the client application responsibility to check if
> the transaction failed or succeeded and issue COMMIT or ROLLBACK
> accordingly (how do I close the transaction block in that case)?
> Or is it the database server that is suppose to check if transaction
> succeded and perform the query, or ROLLBACK if anything went wrong?
PG will rollback all transactions that have an error in some part, as it
can't commit the transaction as a whole.