I have a use case where I need to:
How would I achieve this? Is it possible to commit a transaction and start a new one without releasing the row locks?
Postgres supports Advisory Locks, that can be hold over Session Lifetime. If all your threads use these locks, you would be safe.