Please check out AddCrmBasedUserList example code from Java client library. Other languages example code could be found here. The first call, which is the mutate, creates the CrmBasedUserList, with no members. The subsequent calls are to mutateMembers, which can then add people to the existing list up to 10,000 per operation/request (e.g AdwordsUserListService.mutateMembers(mutateMembersOperation)). You can only have one operation per user list id when you call mutateMembers.
E.g. you want to upload 100,000 user email to CrmBasedUserList. In this case, to upload 100,000 users, first call, which is the mutate, creates the CrmBasedUserList, with no members and you could have another 10 separate mutateMembers requests(i.e. 10 separate AdwordsUserListService.mutateMembers(mutateMembersOperation1) API calls) each containing 10,000 users in mutateMembersOperation. (e.g. AdwordsUserListService.mutateMembers(mutateMembersOperation1)) , AdwordsUserListService.mutateMembers(mutateMembersOperation2)), ..up to. AdwordsUserListService.mutateMembers(mutateMembersOperation10)).
Thanks,
Umesh, AdWords API Team.