You're confusing two meanings of the word "commit".
Calling save - on a model or a form - does cause an update to the database, so in that sense it is committed to the database. However, all database operations take place inside a transaction: and those transactions can be committed or rolled back as a block. So the documentation is correct: even if you call save(commit=True)
, that's still part of an overall transaction that can be rolled back.