Personally I would add that Azure locks are
leases. So the write operation is conditional any way you handle things. Leases can have better average performance under load than the optimistic concurrency of the lakeFS model, but to do this they significantly sacrifice their performance in bad cases (say, above p95).
It is also not trivial what it means to commit a branch (the fundamental operation of lakeFS!) when one of the objects has been leased.
Obviously a lease on a single object cannot block commits, otherwise leases on 2 or more objects can prevent commits. Which leaves two surprising possible outcomes: the server breaks leases on commits or the lease survives. If leases break on commits then their eventual writes fail, but the client is unaware until it next renews the lease. If leases survive then a commit followed by branching out will give results that appear to break consistency.
Users of tools rarely need to care about this, but we do. So I would prefer for us to discuss at the higher level of what table writing operations can do. We can obviously do better with concurrent writes.