Python locks can provide each of the four well-known isolation levels and allow concurrency. Read uncommitted is what people are much more accustomed to, where your transaction may see the data change as other transactions commit. But then its own rights are only visible to other transactions, all in one instant at the moment that your transaction commits. You don't see this in practice.