I am not sure what system/os you are running on, but if it supports inotify, then it can be done automatically by tvheadend if the following is TRUE:
The destination directory must ALREADY have at least one recording from tvheadend.
Via inotify, Tvheadend monitors all directories which contain recordings - it does not use inotify to monitor individual files. When a file is moved, it generates two inotify events - IN_MOVED_FROM and IN_MOVED_TO. A IN_MOVED_FROM event is generated for the existing directory, which tells Tvheadend which file in the directory is being moved, and a linked (by cookie) IN_MOVED_TO event is generated for the directory to which the file is moved (destination directory). HOWEVER, if Tvheadend is not monitoring the destination directory, it will never receive the IN_MOVED_TO and thus not update the new file location in the database (dvr log files). So, in order for Tvheadend to detect the "move", it MUST be monitoring the destination directory - which is only the case if there is already an existing recording there.
If you do not have any new recordings in the new folders yet, you can make a short, temporary recording in the new folder before trying to move your other recordings.
To monitor inotify activity, enable the trace option "dvr-inotify". Certainly I would try moving just one file first and watch the trace log and make sure the recording does not get moved to the "removed recordings" tab of dvr. If that happens, you can move the file back, however Tvheadend won't notice the file has been returned until it is restarted.
Note, it "should" handle bulk moves, but depending on your system/os it is possibly that moving too many files at once will cause some events to be missed.
Also note, your version contains the fix I made last year (https://tvheadend.org/issues/5188)
but for those using older versions, it is best to avoid bulk moves...