Yes and no.
rename() is atomic assuming the OS does not crash. It cannot be split by any other filesystem op.
If the system crashes you might see a ln() operation instead.
Also note, when operating on a network filesystem, you might get ENOENT when the operation succeeded successfully. Local filesystem can’t do that to you.