This can be a bit tricky with polylines as the z-values of each vertice are not immediately accessible through the shape field. You will need to access the polyline geometry object (Shape field) with `SHAPE@` and drill down further to get to each point in the polyline geometry. Here is a `python` and `arcpy` code snippet for how to access the z-values of the vertices of a specific line in a polyline feature class.

    id_field = 'TARGET_FID' #field identifies which features need to be shifted
    id_value = 12 #value in id_field that identifies specific feature that needs to be shifted
    shift_value = 2
    with arcpy.da.UpdateCursor("Breaklines", ['SHAPE@', id_field]) as u_cur:
        for row in u_cur:
            if row[1] == d_value:
                geometry = row[0]
                pts = geom.getPart(0) #get polyline geometry
                pt_array = arcpy.Array() #create array to house new points
                for pt in pts:
                    pnt.Z += shift_value #shift z value
                    pt_array.add(pt) #add point to array
                new_polyline_geometry = arcpy.Polyline(pt_array, None, True) #important to enable z-value by having the third parameter set to True
                row[0] = new_polyline_geometry #set row[0] which is SHAPE@ (geometry object)
                u_cur.updateRow(row)

In a nut shell:

 - loop over the vertices of the polyline geometry
 - update each z value of the point geometry 
 - add the updated point to an array
 - once all points in the polyline have been adjusted:
   - create a new polyline geometry with the point array, making sure to set it to z-enabled
  - then update the old polyline geometry with the newly created geometry