Creating members manually from predetermined list

I’m working on a newsletter site for my wife’s High School Choir classes. The newsletters have to be secured behind the students’ official email address, so I have imported the students and their official contact person to collections. Now I need to create member records for each student and contact. If I could specify the ID of the new member record when calling register() then this would be simple, but instead I will have to capture the id and update the student/contact record with the member id. Alternatively, if I could query the members by email address then that would similarly solve the issue and prevent an unnecessary field and write operation for each member. Am I overlooking something in the docs about how to query members by email?