In that case rsync is a better solution.
Also, cp would return a non-zero code, if something did not work during the copy process. e.g. I see the return code of the last command in my prompt....