If you want to get pedantic, the actual writes to the filesystem (in memory at least) are atomic in either case. However if you have not set append (or, reading some C documentation, if you're unlucky enough to be using NTFS) it is the case that one process could write to a location in the file that another process has already overwritten, thereby overwriting what the other process wrote.
So technically the writes are atomic, but the end result could still disappoint. :-)