Massimo's idea would work, but the table would need to have "membership_id"
set up as an identity field. If your existing structure requires you to
manually fill in this value yourself, then you would have to do your inserts
manually using executesql:
db.executesql("INSERT INTO member (membership_id, first_name) VALUES
((SELECT MAX(membership_id) FROM member) + 1, 'bob')")
This may not be the exact SQL you would use, but it gets my point across.
Also, you would not want to append the first_name value. You would want to
use executesql() placeholders to sanitize the data to prevent SQL injection.
By doing the select in the same query as the insert, you can prevent
duplicate membership_id's from being generated.