Earlier quoted context omitted.
ClickHouse can work with S3 as a main storage. This is possible because a table is a set of immutable data parts. Data parts can be written once and deleted, possibly as a result of a background merge operation. S3 API is almost enough, except for cases of concurrent database updates. In this case, it is not possible to rely on S3 only because it does not support an atomic "write if not exists" operation. That's why…
Is a "write if not exists" atomic operation enouhg as a concurrency primitive for database locks?
That would not be a great base to build a transactional database on.