STM is useful even if you have good threading support. You could easily build a STM library for Java or C#, and there are some, but without syntax support it's pretty cumbersome to use.
Clojure has good STM support because it's easy to add the necessary primitives to a Lisp.