Question: My case scenario passes parameter to a procedure, that only does an insert. But two threads might try to pass the same value. 

How to handle this situation w/out throwing an exception and with least amount of locks?

My performance requirement is at least 10k inserts per second.

**EDIT:** Column is unique. Timestamp might be altered (adjusted) before insertion.

Answer: 
Create index on table with ignore duplicate key option. It will not insert duplicate row and also won't through any error.

E.g.

```
create unique index i1 on #tmp(id) with ignore_dup_key

insert into #tmp values(1,"A")
2> go
(1 row affected)

1> insert into #tmp values(1,"A")
2> go
Duplicate key was ignored.
(0 rows affected)

```
Try the [MERGE](http://technet.microsoft.com/en-us/library/bb510625.aspx) statement

From MSDN . A common scenario is updating one or more columns in a table if a matching row exists, or inserting the data as a new row if a matching row does not exist. This is usually done by passing parameters to a stored procedure that contains the appropriate UPDATE and INSERT statements. With the MERGE statement, you can perform both tasks in a single statement.

Regarding your performance concerns, there is also a page on [Optimizing MERGE Statement Performance](http://technet.microsoft.com/en-us/library/cc879317.aspx)