For issue #1, have a look at this post
For the second issue you could either add an Only when condition to the step that creates a record, so it only does so if some identifier doesn’t exist in the database; or filter your API search to only find records not in your database.