every change is made by appending a new transaction. immutability is intrinsic to transaction processing, it can not be disabled. Once a transaction (it may include several entries) is committed, the database state change accordingly and no change into already committed transaction may be done without clients being able to notice it.
Note for this to be ensured, clients of immudb should keep track of the latest verified state. official sdks handle this for end-applications