diff --git a/src/tests/threaded_stress_test_helpers.h b/src/tests/threaded_stress_test_helpers.h
index 32a5ab18b2e1a2af9901ce3356fb718d9e39790f..0e4fdd4381cb206949b484bdbe065dbaba215f61 100644
--- a/src/tests/threaded_stress_test_helpers.h
+++ b/src/tests/threaded_stress_test_helpers.h
@@ -115,6 +115,7 @@ struct cli_args {
     bool warm_cache; // warm caches before running stress_table
     bool blackhole; // all message injects are no-ops. helps measure txn/logging/locktree overhead.
     bool prelocked_write; // use prelocked_write flag for insertions, avoiding the locktree
+    bool unique_checks; // use uniqueness checking during insert. makes it slow.
 };
 
 struct arg {
@@ -683,6 +684,13 @@ size_t_max(size_t a, size_t b) {
     return (a > b) ? a : b;
 }
 
+static int get_put_flags(struct cli_args *args) {
+    int flags = 0;
+    flags |= args->prelocked_write ? DB_PRELOCKED_WRITE : 0;
+    flags |= args->unique_checks ? DB_NOOVERWRITE : 0;
+    return flags;
+}
+
 static int random_put_in_db(DB *db, DB_TXN *txn, ARG arg, void *stats_extra) {
     int r = 0;
     uint8_t rand_key_b[size_t_max(arg->cli->key_size, sizeof(uint64_t))];
@@ -704,7 +712,7 @@ static int random_put_in_db(DB *db, DB_TXN *txn, ARG arg, void *stats_extra) {
         DBT key, val;
         dbt_init(&key, &rand_key_b, sizeof rand_key_b);
         dbt_init(&val, valbuf, sizeof valbuf);
-        int flags = arg->cli->prelocked_write ? DB_PRELOCKED_WRITE : 0;
+        int flags = get_put_flags(arg->cli);
         r = db->put(db, txn, &key, &val, flags);
         if (r != 0) {
             goto cleanup;
@@ -809,16 +817,18 @@ static int UU() serial_put_op(DB_TXN *txn, ARG arg, void *operation_extra, void
     uint64_t puts_to_increment = 0;
     for (uint32_t i = 0; i < arg->cli->txn_size; ++i) {
         rand_key_key[0] = extra->current++;
+#if 0
         if (arg->cli->interleave) {
             rand_key_i[3] = arg->thread_idx;
         } else {
             rand_key_i[0] = arg->thread_idx;
         }
+#endif
         fill_zeroed_array(valbuf, arg->cli->val_size, arg->random_data, arg->cli->compressibility);
         DBT key, val;
         dbt_init(&key, &rand_key_b, sizeof rand_key_b);
         dbt_init(&val, valbuf, sizeof valbuf);
-        int flags = arg->cli->prelocked_write ? DB_PRELOCKED_WRITE : 0;
+        int flags = get_put_flags(arg->cli);
         r = db->put(db, txn, &key, &val, flags);
         if (r != 0) {
             goto cleanup;
@@ -1679,7 +1689,8 @@ static struct cli_args UU() get_default_args(void) {
         .single_txn = false,
         .warm_cache = false,
         .blackhole = false,
-        .prelocked_write = false
+        .prelocked_write = false,
+        .unique_checks = false,
         };
     return DEFAULT_ARGS;
 }
@@ -2053,6 +2064,7 @@ static inline void parse_stress_test_args (int argc, char *const argv[], struct
         BOOL_ARG("recover",     do_recover),
         BOOL_ARG("blackhole",     blackhole),
         BOOL_ARG("prelocked_write",     prelocked_write),
+        BOOL_ARG("unique_checks",     unique_checks),
 
         STRING_ARG("--envdir",    env_args.envdir),
         LOCAL_STRING_ARG("--perf_format", perf_format_s, "human"),