basically SAX is strictly read-only so if you need to modify the XML document in any form (or create one from scratch) you MUST use DOM.
I can't agree with that. You can read using SAX, perform logical operations and write a new document using the data in SAX events. Naturally you are limited in the kinds of logic you can perform due to the streaming order of the SAX events.
For example, modifying the attributes in selected XML elements is easily done in a startElement method.
There are many other ways to create an XML document besides building a DOM in memory.
Bill