Vous confondez transaction et verrouillage. La transaction rétablit vos données à l'état d'origine en cas d'erreur. Sinon, il déplacera les données vers le nouvel état. Vous n'aurez jamais vos données dans un état intermittent lorsque les opérations sont traitées. D'autre part, le verrouillage est celui qui permet ou empêche plusieurs utilisateurs d'accéder simultanément aux données. Pour répondre à votre question, select...insert est atomique et tant qu'aucun verrou granulaire n'est explicitement demandé, aucun autre utilisateur ne pourra insérer pendant que select..insert est en cours.