Din første idé er absolut gennemførlig. Bare start 10 arbejdertråde, der venter på input på en og samme kø. Derefter sætter din mailproces url'erne i denne kø. Belastningsbalanceringen sker automatisk.
Hvis dine SQL-bindinger er trådsikre, kan du lave INSERT- eller UPDATE-tingene i arbejdstrådene. Ellers ville jeg tilføje en tråd mere til SQL-tingene og vente på input i en anden kø. Så ville dine arbejdstråde sætte forespørgslen ind i denne kø, og SQL-tråden ville udføre den.
Hvis du googler efter "python worker threads queue", vil du finde et par eksempler.