Does throwing a regular javascript error inside a transaction, roll back automatically?

Curious if I need to actually call tx.rollback()? Or if we reach a regular error, or lets say a Postgres error occurs at some step, will everything be automatically rolled back?

Or do we have to always try catch and rollback in the catch/finally block?
Was this page helpful?