That is correct and you'll get exactly one HEAD request per file, leading to the one HEAD before upload and one HEAD after to see if the file is OK.
Depending on how the files to be uploaded are laid out not using --no-traverse
can be quicker - for example if all the files were in one directory.
I don't understand why this made so many HEAD requests though... Could you run it with -vv --dump headers
and post the result somewhere?