@classmethod
def add_to_hd_component_temperature(cls, session, target, temp_change, limit):
    """Add to cv temperature sensor value
        Args:
            session:  database session
            target(dict): target attributes such as key of the server, controller & serial number
            temp_change(int): value to be added to the target temperature
            limit(dict): indicates that target temp cannot go beyond this limit (upper & lower)
        Returns:
            tuple: True if the temp value was updated & current temp value (updated)
        """
    query = []
    query.extend([
        'MATCH (:Asset {{ key: {} }})-[:HAS_CONTROLLER]->(ctrl:Controller {{ controllerNum: {} }})'
        .format(target['server_key'], target['controller']),
        'MATCH (ctr)-[:HAS_CACHEVAULT|:HAS_PHYSICAL_DRIVE]->(hd_element:{} {{ {}: {} }})'
        .format(target['hd_type'], target['attribute'], target['value']),
        'RETURN hd_element.temperature as temp'])
    results = session.run('\n'.join(query))
    record = results.single()
    current_temp = record.get('temp')
    new_temp = current_temp + temp_change
    new_temp = max(new_temp, limit['lower'])
    if 'upper' in limit and limit['upper']:
        new_temp = min(new_temp, limit['upper'])
    if new_temp == current_temp:
        return False, current_temp
    query = query[:2]
    query.append('SET hd_element.temperature={}'.format(new_temp))
    session.run('\n'.join(query))
    return True, new_temp
