How can I tell if a node has more than one parent taxonomy term assigned to it
There's no need to store this information when it can be calculated on the fly. 

The taxonomy module contains a function called taxonomy_get_parents() that can retrieve the parents for a given term. Using this, you can iterate over the node field values to look for any root ("parent") level  terms (i.e. they have no parent) and count the number of terms accordingly.

// Given a node object &amp; taxonomy field machine name, return count of root terms
function mymodule_node_root_term_count($node, $field_name) {
  $count = 0;

  // $node-&gt;{$field_name}[LANGUAGE_NONE] will vary with multi-lingual enviroment
  foreach($node-&gt;{$field_name}[LANGUAGE_NONE] as $term) {
    $parents = taxonomy_get_parents($term['tid']);
    // A root term will return an empty array.
    $count += empty($parents) ? 1 : 0;
  }

  return $count;
}


Once you've built your logic for determining the type of node, you can utilize it in a theme preprocess function to add CSS classes accordingly.