Heat olive oil in a saucepan over medium heat. Add shallot and onion and cook until soft and translucent.
Stir in rice and cook 1–2 minutes to coat.
Add tomato sauce and tomato paste. Begin adding hot stock gradually, stirring often, until rice is fully cooked and very thick, about 16–18 minutes. Season lightly.
Remove from heat. Stir in butter and Parmigiano. Spread on a tray and cool completely.
Divide rice into 6 portions. Press mozzarella into the center of each and shape into tight ovals.
Mix flour and water into a thin batter. Dip each supplì into batter, then coat in breadcrumbs.
Fry at 350°F (175°C) until deep golden brown, about 3–4 minutes. Drain briefly.
Serve hot, ideally with the cheese still stretching.
