Yes, you have to restart your queue, or in your case supervisor, to make sure that your queue works as expected. Supervisor should finish all processes before killing itself. After that, it should start up the queue again with the new code. So you might have a delay of a few seconds that jobs are not being processed, but you won't lose any jobs!
The reason that you don't lose jobs, is because they are stored in the database. The worker just picks one from there and that's it. So restarting supervisor won't affect your queue.