Implement advisory lock to prevent duplicate records being inserted when making simultaneous calls. Fixes #2519