Basically that's the question - I wonder if
set_transient() overwrites/updates a transient option with the same key?
Yes, key (prefixed with string identifying it as transient) is used as option name when value is inserted in database.
Yes. As of 4.3.1, handled in wp-includes/option.php using delete_option() + add_option() or update_option(). If using an external object cache, uses wp_cache_set(), defined by memcached as "The value is set whether or not this key already exists in memcached."– hereSep 22, 2015 at 19:05
Maybe, but in my case set_transient() has failed when re-used without delete_transient() first. For some time I thought the problem was that the array I was saving as a transient was too large but that wasn't it. I recommend that you delete the transient first if you're having a problem.
I would concur with Jorge on the deletion first - I was having issues with
set_transient trying to "overwrite" the same transient. The
set_transient function was updating it, but the return value was false, not true.
A call to
delete_transient with its name just before
set_transient solved my issues and
set_transient would always return true.