MySQL is capable or transactions, but only if you use the berkeley library (see the website for more info)
Whats more to the point is that you can only rollback on the same database connection that you issued the queries you want to rollback on. But, HTTP is a stateless protocol, you can never be sure which connection a user gets. So you'd have to find a way of making sure that every user get's his own database connection, and that they will continue to use the same connection every time they do something in the database.
And then, what if a user forgets to commit his work, or his browser crashes, or his internet link is broken...
Lot's of challenges there I think.