You can also put the exclamation mark inside the brackets:
if [[ ! $PATH =~ $temp ]]
but you should anchor your pattern to reduce false positives:
temp=/mnt/silo/bin
pattern="(^|:)${temp}(:|$)"
if [[ ! "${PATH}" =~ ${pattern} ]]
which looks for a match at the beginning or end with a colon before or after it (or both). I recommend using lowercase or mixed case variable names as a habit to reduce the chance of name collisions with shell variables.