トランザクションとロックを混同しています。エラーが発生した場合、トランザクションはデータを元の状態に戻します。そうでない場合は、データを新しい状態に移動します。操作が処理されるときに、データが断続的な状態になることはありません。一方、ロックは、複数のユーザーが同時にデータにアクセスすることを許可または防止するものです。質問に答えるには、select ... insertはアトミックであり、詳細なロックが明示的に要求されていない限り、select..insertの進行中に他のユーザーが挿入することはできません。