In some situations like a copy it's better to let the SQL database handle name collisions using database-level constraints (partial unique index on parentid + name).
When this is activated, the code in SQLSession.findFreeName is actually harmful as it does a renaming with a time-based suffix instead of letting a constraint exception be raised and the higher-level layers deal with it.
So it should be possible to disable the SQLSession.findFreeName logic for copy.