Copy on Write (COW) is a fundamental underpinning beneath most of what makes ZFS awesome.
When a file is modified, the copy-on-write filesystem writes out a new version of the block that is modified, then updates the metadata of the files to unlink the old block, and link the new block just written.
Unlinking the old block and linking in the new is accomplished in a single operation, so it cannot be interrupted.
If the power went down after it happens, you have the new version of the file, and if the power went off before, then you have the old version.
Either way, the filesystem is consistent.
Copy-on-write in ZFS is not only at the filesystem level.
It is also at the disk management level.
This means that the RAID hole, a condition in which a stripe is only partially written before the system crashes, making the array inconsistent and corrupt after a restart, does not affect ZFS.
Stripe writes are atomic, the vdev is always consistent.