In memory databases can have rollbacks if they're using journal mode memory. The last sentence there is a little confusing...
"Note that the journal_mode for an in-memory database is either MEMORY or OFF and can not be changed to a different value. An attempt to change the journal_mode of an in-memory database to any setting other than MEMORY or OFF is ignored. Note also that the journal_mode cannot be changed while a transaction is active"
...it seems to say you can't change it, but then says if you do change it...
For the transaction benefits you might be right, or it might be the case where having them in a transaction saves some disk flushes while it's going on. I.e. in both autocommit and journal_mode off you'll be making changes directly to the main file with no rollback journals. But with autocommit it'll be syncing the file after each statement whereas with the transaction it might wait until the commit to sync. Not sure on that though.
An in memory database with journal_mode off I'm pretty sure will see no benefits from transactions.
These are my edumacated guesses anyway. Please trust the actual experts more than me.
From: sqlite-users [mailto:[hidden email]] On Behalf Of Nelson, Erik - 2
Sent: Friday, December 22, 2017 11:10 AM
To: SQLite mailing list
Subject: [sqlite] journal mode and transactions