No, there is no automatic Flush
call after every method.
TextWriter.Synchronized
only guarantees thread safety - meaning it will prevent multiple threads from running calls to instance in parallel. There is no additional guarantees on top of that.
Note that it would significantly decrease performance of writer if it commits changes after each operation.
If you need to clarify how code is implemented - look at the source - https://referencesource.microsoft.com/#mscorlib/system/io/textwriter.cs,9e3dd0323cf4ee8b and observer that all methods are simple wrappers to call passed in writer with MethodImplOptions.Synchronized
added to provide thread safety:
[MethodImplAttribute(MethodImplOptions.Synchronized)]
public override void Write(char value) {
_out.Write(value);
}