Yes, checking wether the target file exists will prevent lost files. I still think building and checking a replacement list is better, because it allows you to skip the whole batch of operations instead of having to dig through the output to fix rejected rename operations.