Here is my understanding based on Bookkeeper. :)
When you get the callback, the write is persist. Every write will flush to disk. But the callback could be got earlier than that,
In Bookkeeper, The data is first write into a journal file, then it could do the callback. The real flush happens later. If system paniced before the real flush happened (the data is in Bookies system cache), Bookkeeper could do log-replay from journal file, which kept the write content, to make the write persist on disk.