あなたの最初のアイデアは絶対に実行可能です。 1つの同じキューで入力を待機する10個のワーカースレッドを開始するだけです。次に、メールプロセスはURLをこのキューに入れます。負荷分散は自動的に行われます。
SQLバインディングがスレッドセーフである場合は、ワーカースレッドでINSERTまたはUPDATEを実行できます。それ以外の場合は、SQL関連のスレッドをもう1つ追加して、別のキューで入力を待機します。次に、ワーカースレッドがクエリをこのキューに入れ、SQLスレッドがクエリを実行します。
「pythonworkerthreadsqueue」をグーグルで検索すると、いくつかの例が見つかります。