Most databases do not support true Isolation
In theory, Transaction Isolation should simplify development by allowing the application to assume that there is no concurrency. Databases that provide Serializable Isolation guarantee that transactions have the same effect as if they ran serially - one after another, without concurrency. This is generally considered the highest level of isolation.
In reality, most databases don't support Serializable Isolation because of the performance cost. They have weaker levels of isolation, which protect against some concurrency issues, but not all. These levels of isolation are harder to understand but are nevertheless popular and used in practice.
Many popular relational database systems (which are usually considered ACID) use weak isolation, so they will be unable to prevent certain concurrency bugs from occurring. Hence it is not sufficient to use a database that claims to be ACID-compliant. It is essential to understand the kinds of concurrency problems that could occur in live systems and learn how to prevent them.