Start here. This is the direct spoken answer to practice first.
Why this question matters
Isolation is a means of protecting a specific invariant. The useful question is not which level sounds strongest, but which database operation prevents available capacity from becoming negative when requests overlap.
I start with the invariant: confirmed reservations must never exceed capacity. If one row stores remaining seats, an atomic conditional update such as decrementing only where Remaining > 0 can protect it without a read-then-write race; zero affected rows means sold out. A unique constraint also prevents the same user or reservation id from being accepted twice. I keep the transaction short and return a clear conflict when the invariant cannot be satisfied.