Din första idé är absolut genomförbar. Starta bara 10 arbetartrådar som väntar på input på en och samma kö. Sedan placerar din e-postprocess webbadresserna i den här kön. Lastbalanseringen sker automatiskt.
Om dina SQL-bindningar är trådsäkra kan du göra INSERT eller UPDATE-grejen i arbetartrådarna. Annars skulle jag lägga till en tråd till för SQL-grejen, i väntan på input i en annan kö. Sedan skulle dina arbetstrådar lägga frågan i den här kön, och SQL-tråden skulle köra den.
Om du googlar efter "python worker threads queue" hittar du några exempel.