The JavaDoc for QuoteMode.NONE says:
Never quotes fields. When the delimiter occurs in data, it is preceded by the current escape character. If the escape character is not set, printing will throw an exception if any characters that require escaping are encountered.
However, the CSVFormat.validate() method will throw an IllegalArgumentException if there is no escape character.
I was expecting the documented behaviour. I guess I will need to use QuoteMode.MINIMAL instead.