Supervision trees is how you impose structure to your Erlang programs. They start with a simple concept, a supervisor, whose only job is to start processes, look at them, and restart them when they fail. By the way, supervisor are one of the core components of ‘OTP’, the general development framework used in the name ‘Erlang/OTP’.
Supervisor is an OTP concept. The load balancing between nodes is the responsibility of the BEAM. RabbitMQ is an OTP application (unless you are talking about the BEAM process mailboxes - the mailbox is an integral part of any BEAM process while the BEAM handles the details of message routing between BEAM processes).
Is your question about Erlang supervisors, or the abstract idea of a supervisor in general?
Assuming the first, in your example, supervisors are internal to the Elixir app (and the message queue, if you’re using rabbitmq). They have nothing to do with load balancing, etc. It’s just a way of organizing work within an OS process. It’s not an infra-level concept.