A write lock also blocks readers. It is an exclusive lock so only* the owner can access the locked bytes, and no-one else can access those bytes, be it by reading or writing.
* fcntl() locks are advisory locks. So anyone else that opens the file can freely read/write to it if they do not co-operate and also uses fcntl() to grab the locks. See here if you need mandatory locking