SQLite Forum

vfs write amount size without WAL
SQLite itself will only write to the database file page-size chunks that
are aligned to a page boundary.

But beware:  Intermediate VFS shims might change that.  Also, an application
could, if it wanted to, acquire the sqlite3_file object for the database and
then invoke the xWrite method with any parameters it wants.

So, in other words, it would be reasonable to return SQLITE_IOERR or some
other error code if you get an iAmt that is different from the page size,
but it would not be reasonable to assert().