How to set quaternion rotations for bones in Blender Python
So, in the end I ended up creating the bones using new() then I converted by absolute rotation to matrix and transformed the bone by that. Then after that I added the absolute position to both the head and the tail of each bone and that got me the correct result.

    for i, node in enumerate(jms.nodes):
        scene_node = edit_bones.new(name=NODE_NAME_PREFIX+node.name)

        # Assign parent if index is valid.
        scene_node.parent = scene_nodes.get(node.parent_index, None)

        # If a node has multiple children we cannot connect its tail end
        # to the children.

        pos = absolute_transforms[i]['translation']
        rot = absolute_transforms[i]['rotation']

        # Bones when created start at 0 0 0 for their tail and head.
        # We extend the tail so it sticks out a bit and signifies the direction.

        scene_node.tail = (scene_node.bbone_x, 0.0, 0.0)

        # We then rotate the bone by the absolute rotation that it should have.

        scene_node.transform(rot.to_matrix(), scale=False)

        # Then we add the absolute location to both the head and the tail.

        scene_node.head += Vector(
            (pos[0] * scale, pos[1] * scale, pos[2] * scale))
        scene_node.tail += Vector(
            (pos[0] * scale, pos[1] * scale, pos[2] * scale))