1. Если выбрать путь ячейки с массивом ключей - то будет блокировка обновления записи, через Concurrency Token или через какой другой механизм. Но если у вас реализована очередь (EventBus, Rabbit) то конкуренции не будет.
Еще проблема - JOIN таблиц, построение сложных запросов. Т.к. индексировать вашу ячейку сериализованную проблематично - то при запросах будет SCAN - производительность упадет на больших объемах.
2. Промежуточная таблица дает возможность параллельно работать с Производителями и Поставщиками, связывать из без конфликта конкурентной записи.
Запросы отлично выполняются, т.к. ключи индексы.
Еще изучите предметную область. Скорее всего связь между Поставщиком и Производителем - это некий Договор или Акт или какой другой бизнес объект, на основе чего вы вдруг решили связать их.
Так вот, эта связывающая сущность - это будет бизнес объект, а не просто промежуточная таблица.