1👍
Transactions are local to a single thread in a process (since connections are, and transactions are tied to a single connection), and requests are routed to an arbitrary thread in an arbitrary process. Even with a single thread and process, you can’t guarantee that there are no other requests in between — and having a single thread serving requests absolutely kills your site’s performance and scalability by disallowing any concurrency. Transactions also block other threads from using and altering the same data, so transactions should be as short-lived as possible, or you will again block concurrent requests from completing.
You can — assuming the original changes are based on a form — render the same form on the confirmation page using hidden inputs, without saving the data to the database. When the user approves the changes, you have the same input as form data, and you can easily save the data during the confirmation request.